iT邦幫忙

2022 iThome 鐵人賽

DAY 13
1
AI & Data

機器學習的 hello world - 用手寫數字辨識系統學習 ML 的 30 天系列 第 13

[DAY13] 資料的劃分-訓練集(training set)、驗證集(validation set) 與 測試集(testing set)

  • 分享至 

  • xImage
  •  

今天我們來講一下資料(data)。這邊我們主要會分成兩部分,分別為:

  • 訓練集(training set)、驗證集(validation set)跟測試集(testing set)的定義與差別
  • 資料驗證常用的兩種劃分方法
    • holdout validation:切出部分資料做驗證
    • k-fold cross validation:k折交叉驗證

一、訓練集、驗證集跟測試集的定義與差別

在機器學習中,通常我們會將蒐集到的資料切一部分出來當作測試資料(testing data),來評估模型的表現。但若以比較正式或說標準的劃分法,我們會將資料分成三類,分別是:

  • 訓練集(training set):訓練模型參數用的資料集。
  • 驗證集(validation set):用於檢驗模型狀況的資料集,可以從資料集中自己劃分也可以使用套件劃分,如 keras 可用 validation_split='比例'去劃分多少比例的訓練資料要當驗證集。
  • 測試集(testing set):評估模型最終表現,也可以說測試資料泛化(generalize)的能力好不好。當模型遇到沒有見過的資料時,它的表現怎麼樣。ps. 我們要避免拿測試集的結果做修正,但人性…很難避免,因為當我們看到結果不好時,多多少少都會想修正。

https://ithelp.ithome.com.tw/upload/images/20220927/20131719puMavIMzGy.png
圖片來源:cross-validation:从 holdout validation 到 k-fold validation

若以考學測等大考來比喻,訓練集就像平常上課學習,我們根據課本講義裡的內容來掌握知識;驗證集就像平常的作業模擬考,透過作業或模擬考我們可以看自己的學習成果,看要繼續學還是要做調整;而測試集就像考學測等大考測驗,用來評估你的最終學習狀況。所以偷懶點當然也可以訓練學完就去考大考,不用驗證集。


二、驗證集的常用劃分方法

在資料驗證的部分,這邊介紹兩種常用方法

  • holdout validation:切出部分資料做驗證
  • k-fold cross validation:k折交叉驗證,如果資料樣本數很少,或想找到訓練效果較好的可以用這個方法。常見 k = 3~10。圖片來源

https://ithelp.ithome.com.tw/upload/images/20220927/20131719lQMUfxPE4z.png

ps. 圖中 Testing Set 分成 public / private 這點我們會在後面講 Kaggle 的地方講。


三、小結

用 Keras 疊一個神經網路需要先知道的幾個名詞 第6天(/6 days) 完成。
明天我們就可以開始用 Keras 套件疊起一個手寫數字辨識系統啦!
疊完我們再講怎麼調~


上一篇
[DAY12] 評估結果成效的準則-性能指標(metrics)
下一篇
[DAY14] 使用 Keras 拼出手寫數字辨識系統的前置作業-實作環境 與 深度學習框架介紹
系列文
機器學習的 hello world - 用手寫數字辨識系統學習 ML 的 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言